Method and system for providing a seamless tournament system for multiplayer games

ABSTRACT

An interactive gaming system is described that comprises a host gaming server comprising memory and a processor; said host gaming server being capable of remotely communicating with at least two client consoles that are capable of running application software; an SDK capable of being integrated with the application software running on the at least two client consoles wherein said SDK will facilitate communication with said host gaming server; a tournament management program stored in said memory and capable of being run on said processor; wherein said tournament management program will manage the operation of a tournament involving games to be played by players on the at least two client consoles; wherein said games are hosted on one of the at least two client consoles involved in said game and said SDK will communicate information regarding said game after said game has ended.

CROSS REFERENCES TO RELATED APPLICATIONS

This application claims priority to provisional application No. 60/904,479 filed on Mar. 2, 2007, the entire disclosure of which is hereby incorporated by reference.

TECHNICAL FIELD

The present invention relates to a method and system for providing a seamless gaming environment for multiple users, including a tournament system that can involve peer to peer hosting.

BACKGROUND OF THE INVENTION

Since the advent of the Internet and its increasing popularity, technology has made advances in electronic connectivity. In particular, the interconnectivity on the Internet has developed rapidly with regard to playing games involving multiple players.

Typically, game servers will host games so that multiple users can join and play on the game server. A player will need to have a computer or other processor that will allow them to connect to the Internet. Since the game is hosted and run on the game server, the player often only needs browser software that allows communications between the player's computer and the host server. Control of the operation of the game and the players in the game reside with the host server. With that control, the host server can control the gaming environment and provide additional features to the game player.

For example, several gaming sites located on the Internet allow many players to connect to their game server to play against anyone else connected at that time. Since the game is hosted on the game server, the game server allows the player to access a lobby wherein available games are listed and the player can enter into an available game. Additionally, the results of the game can be recorded to maintain statistics on the players. Both the lobby listing of available games and the operation of the game are hosted on the host server. Since the particular game to be played on the game server is known, the game server can be customized to fit the particular features of the game. Games such as chess would require different handling than the game of bridge.

One of the disadvantages of having a host server is that the entire game must be run on the host server. While some games are easy to implement, some games are complex and require a lot of processor time. The complexities of some gaming software and the number of the players playing on the host game server simultaneously can cause major bandwidth problems as the host server cannot function at appropriate speeds to accommodate the game play.

Another method of allowing multiple players to play via the Internet is to have a peer to peer type system. In peer to peer type systems, one of the computers that is involved in the game will serve as the host computer instead of the game server. The host computer will control the operation of the game in accordance with the rules of that particular game. The game server could simply be facilitating the electronic connection between the players by creating a common place for players to meet.

Commercial gaming consoles are typically involved with peer to peer systems because the games are often complex and utilize significant processor memory. In addition, gaming consoles are typically adapted to play a large amount of different games and these games are usually produced by different game produces. While the games produced by the various game producers must conform to play on that particular game console, there is generally a lack of conformity in how the game operates. As such, any game host server would only be able to be customized to handle one particular game on that gaming console.

One disadvantage of a peer to peer system is that the host gaming server that is facilitating the connection will cede control of the game to the player console. Thus, the ability to provide a complete gaming environment to the players is limited. Any host gaming server is relegated to only arranging the match and allowing the game to proceed on one of the individual's game console. Additional features such as keeping statistics and offering cash and/or prizes based on the game outcome are also difficult to do with any level of security or reliability.

Another disadvantage of the peer to peer system is that the host gaming server would not be able to offer a tournament styled competition. A tournament consists of several rounds wherein the winner of a game would advance to the next round. Without being able to reliably account for the results of the games on a peer to peer system, any tournament hosted by the host gaming server would be dependant on the individual participants reporting the results. Moreover, the smooth operation of the tournament would be disjointed as results would not be immediately reported to the tournament organizer.

SUMMARY OF THE INVENTION

The present invention solves the problems of the prior art by creating a seamless gaming environment for players to connect to and play online games with other players for cash and prizes. The players will be using console type devices that will have their own game software. The invented system will incorporate SDKs into game software that is being played on the individual consoles. The SDKs will facilitate communication with gaming servers that is hosting the gaming environment. The gaming environment will allow players to create and manage financial accounts associated with a user id. The gaming environment will allow the players to meet other players interested in playing games in either a head to head format or a tournament styled format. For the tournament styled format, the game server will manage the operation of the tournament by arranging matchups between players, determining the host consoles, running anti-cheat software and determining advancement in the tournament by monitoring results that have been reported back to it by the SDKs in the consoles. The game server will also compile and calculate various statistical data for each player to be able to assess a rating of each player. The rating will help to determine appropriate matchups between the players. A financial server will administer to the maintenance of the financial accounts of the players and administer to the fees and awards that can be deducted or added to a player's financial account.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows the components of the invented system in accordance with one embodiment of the present invention.

FIGS. 2 a-2 e show flowcharts depicting the operation of the invented system in accordance with one embodiment of the present invention

DETAILED DESCRIPTION OF THE DRAWINGS

For the purposes of understanding the invention, reference will now be made to the embodiments illustrated in the drawings. It will be understood that no limitation of the scope of the invention is thereby intended. Any alterations and further modifications in the described embodiments, and any further applications of the principles of the invention as described herein are contemplated as would normally occur to one skilled in the art to which the invention relates.

FIG. 1 shows the components of the invented system. Host gaming server 101 is comprised of a processor and memory. Several operating programs will run on the host gaming server: (1) Matchmaker software, (2) Payment Processing software, and (3) Web Service software. Web service is further comprised of the following subsystems: (a) Tournament Web Service, (b) Head to Head Web Service, (c) Game Stats Web Service, (d) Account Management Web Service and (E) Web Content Web Service. Host gaming server 101 also stores and maintains a database in memory.

The database is stored on memory located in the host gaming server 101. The database can be comprised of many different databases that will pertain to the different software programs to be run on the hosting game server. For example, the Games Stats Web Service will receive and store player data relating to determining any ranking of the players such as wins/losses, points and final score. Each of the different software programs will have access to the various databases that are needed for it to accomplish its intended functions.

Client 103 is the gaming console used by the player who wishes to play the multiple player game. Client 103 is comprised of the gaming console and the game disc/content with appropriate gaming software that will run on the gaming console's processor. Part of the gaming software is an SDK that will be facilitate the communications with the host gaming processor 101. The SDK will communicate with the Web Service via HTTP for interactions with the host gaming server 101.

The SDK is an application programming interface (API) that is provided to the gaming software producers to be integrated with their gaming software. The SDK will be customized to the particulars of each game by the gaming software producers. The main purpose of the SDKs is to facilitate the communication between the game software and the host gaming server. While the SDK will have a persistent connection to the host gaming server once a user logs into the host gaming server, the SDKs will initiate and govern the format of the communication between the two at specific times. The SDKs will have set rules to determine the times of communication and the format of the communication. For example, at the completion of any game that has been hosted on any particular game console, the SDK will prompt communication that reports the results along with any statistical information about that game that needs to be captured by the gaming host server. Such information could be used by the gaming host server to maintain the rankings or to determine who advances in an ongoing tournament.

The gaming console will have an appropriate user interface (“UI”). The UI is the means by which a person playing a game will view and interact with the host gaming server 101. The UI includes on-screen representation of information and interactive components controlled by the user input. The UI will be able to display information from the gaming software and from the host gaming server through the SDK. The UI templates that will display information from the host gaming server will be designed to be simple and easily integrated into the game software.

External payment services 105 are third party financial institutions that can execute financial transactions through the Internet. Typical financial institutions would be banks or credit card companies.

The host gaming server has basically two main purposes: facilitating matches and/or tournaments and handling monetary tranactions. Monetary transactions are handled by the Payment Processor program. The Payment Processor program will have access to the financial database that will have records pertaining to each user. It will perform the duties of interfacing with the third party financial institutions in debiting and/or crediting each player's financial account as stored on the database. Monetary transactions are typically handled by contacting online payment services such as paypal.com and bank accounts such as chase.com and bankofamerica.com.

The Payment Processor program will also control the financial transactions that occur as a result of the games played on the host gaming server. Accordingly, the Payment Processor program will accept entry-fees and then award the winners according to the payment schedule for that particular event.

In addition, in another embodiment, the Payment Processor program could implement financial transactions by direct crediting and debiting from the financial institutions. Instead of each user establishing an account maintained by the Payment Processor program, the payment services are directly debited and credited as a result of the real money payment processing.

In terms of facilitating matches and tournaments, the host gaming server performs the following functions: player ranking, matchmaking, tournament management and anti-cheating. Ranking is performed by the Game Stats Web Service. The database will have records pertaining to each user account created in the host gaming server. Associated with each database records are relevant game statistics that show the performance of that player in various games. Since each game will generate different statistics, the statistics will be maintained for each game per each player. For example, games which are categorized as being shooting games could generate statistics such as kill ratio and accuracy. In addition, statistics about the performance of the player with regard to matches and/or tournaments played on the host gaming server can be kept.

The ideal purpose behind this ranking function is to generate a rating for each user so that users will be able to be equally matched when competing. The rating could be simply calculated on statistics such as the win/loss record, but could also account for particular aspects of the game such as hit/miss ratios, number of kills, etc. Ratings can also be derived from statistical data stored in the database.

Such a rating could be a weighted rating with such factors as playing history, opponent ranking, and entry fee amount paid affecting the rating. In addition to the numerical rating system, the ranking function could implement a reputation system wherein comments or other statistics are generated and kept for each user. With such a reputation system associated with each user, each user could be scouted out to better ensure an equal playing competition. In addition, the ranking server could be used in equalizing the matchup by altering the entry fees.

Matchmaking is performed by the Matchmaking program. Matchmaking requires an analysis of the statistics kept for each player and determining an appropriate opponent for a particular person. The determination of an appropriate opponent can depend on the particulars of the game and/or the setting of the contest. For example, in a tournament setting, the players could be ranked and assigned a seed. The lowest seed would typically play the highest seed in the first round of the tournament.

Tournament management is performed by the Tournament Web Service program and it involves setting up the appropriate matches, monitoring the results of each game and determining the advancement of the players through the tournament structure. In a single elimination tournament, the players are grouped into appropriate brackets with each bracket representing a game to be played. The winner of each bracketed game will advance to the next bracketed match. The tournament web server will keep track of the results of a particular bracketed game through communication with the SDKs.

Anti-cheating is performed by the host server and it involves instituting several security checks to ensure that cheating does not occur. In general, each individual client console will implement a trusted processor that will have its own security protections. However, host gaming server can also implement its own security protections. One such security measure entails having the SDK send selected portions of the game code as it occurs during the playing of the game. The anti-cheating software on the host gaming server can analyze the data to determine outliers in the data received to detect instances of cheating.

FIGS. 2 a-2 e depict flowcharts that show the steps that the host gaming server will perform when the player is interfacing with the host gaming server. In FIG. 2 a, the user will first connect to the host gaming server in step 201. Upon connection to the host gaming server, the user will be able to do two things: (1) login to his/her account or (2) create a new account.

If the player chooses to create a new account, then the payment processor software is activated as depicted in FIG. 2 b. The player will be prompted to choose a new user id and associated password in step 221. The new user id and password is stored in the database maintained by the host gaming server in step 223. In addition, the user id and password can be stored on memory in the game console of the user to provide an additional security measure. That memory would only be accessible through the game software.

Once a new database record has been created for that user id, then the payment processor will allow the user to setup his financial account. The user will be able to create a monetary account that can be funded through his third party financial institution. The payment processor can directly access the player's finances through established online payment processes. For example, the host gaming server could issue a charge against the player's credit card as a vendor of services and maintain a balance in the payment processor for that player. The player's financial information will be stored in the database in step 225. Upon completion of the new account setup, the player will be given access to the web service portions of the host gaming server in step 227.

If the player chooses to login into his account, the host gaming server will check identification in step 205 of FIG. 2 a. The check of information will typically involve the comparing of user-id with an associated password that has been stored on the databases of the host gaming server. The check of identification can also involve comparing data stored on the player's game console against the information contained in the host gaming server's database. The host server can also integrate third party software to compare user information against other databases (driver's license, public records, etc.) to ensure that user identification is authentic. If the identification is verified, then the player is allowed access to the web service portion of the host gaming server in step 207. If the identification is not verified, then the player will have the chance to either create a new account or to login again.

FIG. 2 c depicts a flowchart showing the basic process that occurs once the player is given access to the web service features of the host gaming server. The user will essentially be given three choices in step 231: (1) access/edit his account, (2) enter a head to head match or (3) enter a tournament run on the host gaming server. The user can be presented with various other options and still be within the scope of the present invention.

If the user chooses to access/edit his account, the payment processor will give the user access to the information that has been stored in the database that pertains to his record. The user will be able to change any of the details of his account, delete his account and/or view the information. For example, the user can decide to change the financial institution through which he funds his account on the host gaming server. Upon any changes being made by the user and saved in the database, the user will be returned to the three choices presented in step 231.

If the user chooses to enter a head to head match, then the Head To Head Web Service program is initiated. The Head To Head Web Service program provides interfaces for the needs of a single match participation. FIG. 2 d shows the operation of the Head To Head Web Service program. The user will be presented a screen showing the various games that are open for him to join. Each listed game will display the particular format of the match to be played. The format can include the entry fee to be paid to the host gaming server, the prize to be won at the end of the match, the conditions for determining a win for the match and/or any other limitations or rules that will be in play during the match.

The format of the match will be dependent on the nature of the particular game to be played. Restrictions on time or the conditions that constitute a win are factors that can be variable. The host gaming software will be able to accommodate each of these variable factors because it does not get involved in the actual operation of the game. The operation of the game will be hosted by one of the participating player's console or by a dedicated console server. The host gaming server can optionally communicate the format of the game to the game console through the SDK or the users can independently setup the game on the game console to comport with the agreed upon format. Upon reviewing the relevant information regarding a match, the user will choose an open match to join or create his own match as shown in step 241.

The head to head web service will monitor the amount of players that enter the game and stop entries that do not match up with the stated format. While most head to head matches will involve only two players, there can be matches that involve team play, which would require more than two players, or multiplayer games that involve more than 2 players in a single match, such as a racing game with 6 players racing against each other. Once the required number of players have agreed to play that match, the payment processor will deduct the appropriate entry fee from each of the player's accounts in step 243.

After deducting the entry fees, the host gaming server determines the host console in step 245. The determination of the host console can involve polling the “pings” of the participants and selecting the ideal host. The Head To Head Web Service program will identify the host and the participants by their respective IP addresses. The host is responsible for facilitating the communications between the participants. That communication can be optionally through the SDK and the host web server, but it does not have to be performed through the SDK. After the ideal host is determined, then the game is started.

While the host gaming server will not be involved during the actual playing of the game, the host gaming server can perform anti-cheating measures during the playing of the game as depicted in step 247. In those instances, communications would be directed through the SDK to anti-cheating software running on the host gaming server. For example, if the anti-cheating software mines data from a game to discover that one player was shooting 100 bullets per second as opposed to the limit of 5 bullets per second that the game is programmed to allow, then it can detect cheating.

Once the match has been completed according to the established format of the game, the SDK will initiate the game software to report the results of the match to the host gaming server in step 249. In addition to the results of the match, statistics regarding features of the game play can be forwarded to the host gaming server through the SDK. Examples of statistics regarding game play features could include kill ratio and accuracy for shooting games or final score and margin of victory for sports games. The format of the communication can also be formatted to fit the structure of the appropriate database.

Upon the reporting of the results, the Payment Processor program is initiated to award the prizes according to the predetermined format of the match in step 251. The corresponding accounts of the winners and losers are respectively credited and debited. In addition, the results and the statistical information will be forwarded to the Games Stats Web Service program wherein the database records are updated and any derived ratings are calculated.

Referring back to FIG. 2 c, the user can opt to enter a tournament. Upon this selection from the user, the Tournament Web Service program is initiated which is depicted in FIG. 2 e. The Tournament Web Service program will be presented with a screen that shows the available tournaments that he can join. Along with each available tournament, the screen will display information about the format of each tournament. The format of the tournament can include: (a) the game to be played, (b) the win conditions for each match played in the tournament, (c) the entry fee and payout schedule, (d) the nature of the tournament, (e) the time that the tournament will start and (f) any limitations on the game during play. The nature of the tournament could indicate whether the tournament is single or double elimination brackets and the types of limitations that could be used are whether there is a time limit. The format of the tournament will vary greatly depending on the nature of the game. Similar to head to head matches, the format of the matches in the tournament will not greatly affect the operation of the host gaming server since the operation of the game will be hosted by individual consoles. Upon viewing the available tournaments, the user will select a tournament to join in step 261.

The Tournament Web Service program will monitor will monitor the time to determine when to start the tournament in step 263. Alternatively, if there is a limit to the amount of players that can play, the Tournament Web Service will monitor the amount of players that have signed up for a particular tournament to determine when the tournament is filled. After the tournament is started, the Tournament Web Service will instruct the Payment Processor program to deduct the entry fee from each corresponding player's account.

After the fees have been deducted, the host gaming server will perform matchmaking to determine the appropriate matches between the players as depicted in step 265. The criteria used by the matchmaking program will depend on various factors. For example, if the tournament is a single elimination tournament, then the matchmaking program could ranking the players according to relevant statistics maintained by the Game Stats Web Service and assign seeds to each player. According to the format of the single elimination tournament, the highest seed will play the lowest seed. Other criteria can be used by the matchmaking program depending on the various factors and it would be under the scope of this present invention.

After the matchups have been determined, the host gaming server will determine the host console and communicate the various IP addresses to facilitate the game play as depicted in step 267. Similar to the head to head process, anti-cheating software can be run during the playing of the matches and the SDK will initiate communication of results and relevant statistics back to the Game Stats Web Service program as indicated in steps 269 and 271.

Once match results and relevant statistics are reported to the host gaming server, the Tournament Web Service program will determine the ranking of the players as according to the tournament format and whether the player will continue to the next round. If the player is to continue, then the Tournament Web Service program will communicate that to the player's console through the SDK. If the player is not eligible to continue, that player will be informed that his Tournament participation has ended and he will not proceed to the next round. If the tournament has not ended, then the process returns to the matchmaking step 265 for the players that will advance to the next round. If the tournament has ended, then the Tournament Web Service will prompt the Payment Processor to credit the winner's account with the prize in step 275 and update the statistics kept by the Game Stats Web Service in step 277. 

1. An interactive gaming system comprising: a. a host gaming server comprising memory and a processor; said host gaming server being capable of remotely communicating with at least two client consoles that are capable of running application software; b. an SDK capable of being integrated with the application software running on the at least two client consoles wherein said SDK will facilitate communication with said host gaming server; c. a tournament management program stored in said memory and capable of being run on said processor; wherein said tournament management program will manage the operation of a tournament involving games to be played by players on the at least two client consoles; wherein said games are hosted on one of the at least two client consoles involved in said game and said SDK will communicate information regarding said game after said game has ended.
 2. The interactive gaming system as recited in claim 1, wherein said host gaming server communicates with the at least two client consoles through the Internet.
 3. The interactive gaming system as recited in claim 1, wherein the application software running on the at least two client consoles are video games.
 4. The interactive gaming system as recited in claim 1 further comprising a database stored on said memory that contains records pertaining to the players.
 5. The interactive gaming system as recited in claim 4 further comprising a ranking program that is capable of keeping statistics on said players stored in said database.
 6. The interactive gaming system as recited in claim 5 further comprising a matchmaking software that can run on said processor that is capable of evaluating said statistics kept in said database to determine appropriate matchups between the players for each game in said tournament.
 7. The interactive gaming system as recited in claim 1 wherein a prize is awarded to the winner of said tournament.
 8. The interactive gaming system as recited in claim 1 further comprising a payment processing program that can run on said processor that can manage financial accounts maintained for each of said players.
 9. The interactive gaming system as recited in claim 8 wherein said payment processing program is capable of negotiating financial transactions with third party financial institutions.
 10. The interactive gaming system as recited in claim 9 wherein said payment processing program negotiates the financial transactions with said third party financial institutions through the Internet.
 11. The interactive gaming system as recited in claim 1 wherein said tournament management program will determine which client console will be the host of the match.
 12. The interactive gaming system as recited in claim 1 wherein said tournament management program will determine the player that will advance in the tournament based on the information regarding said game that was communicated by said SDK. 